package cn.edu.ncu.housinghub.entity.house;

import jakarta.validation.constraints.*;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 房产认证表（房东房产审核信息）
 */
@Data
@NoArgsConstructor
public class PropertyVerification {
    private Long propertyVerifyId; // 主键

    @NotNull(message = "用户ID不能为空")
    private Long userId; // 外键，用户ID

    @NotBlank(message = "房产证照片路径不能为空")
    private String propertyPicPath; // 房产证照片路径（OSS）

    @NotNull
    @Pattern(
            regexp = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}[0-9]{4}[0-9A-Za-z]{7,14}$",
            message = "房产编号格式错误，应为：省份简称(1位)+年份(4位)+编号(7-14位数字或字母)，示例：粤2023A1234567"
    )
    @Size(min = 12, max = 19, message = "房产编号长度必须在12-19个字符之间")
    private String propertyNo; // 房产证编号

    @NotBlank(message = "房产地址不能为空")
    private String propertyAddr; // 房产地址



    @NotNull(message = "房产认证状态不能为空")
    @Min(value = 0, message = "房产认证状态必须为有效值")
    @Max(value = 2, message = "房产认证状态必须为有效值")
    private Integer verifyStatus; // 审核状态（0=待审核，1=通过，2=驳回,3=已取消）

    private Boolean isDeleted; // 软删除标记


    private String refuseReason;// 拒绝理由

    private LocalDateTime applyTime; // 创建时间



    public PropertyVerification(Long propertyVerifyId) {
        this.propertyVerifyId = propertyVerifyId;
    }
}
